Well, I'm always unhappy if I have to do some changes to the basic structure of config files, such as creating a new one. That always means too much trouble for the users, for you. But I feel the current state of affairs (that is 3 primary config files) is reasonable from both logical and manageability points of views. About 8 external files were too many, 2 were too few.
Also I always hesitate before adding a new config option somewhere. I realize there's so many of them that finding the right one may be a problem. I'll try to make a sort of an index of options that would navigate you to the file and section you need.
But generally updates such as the one from 2.1.9 to 2.2.0 are not complicated. Basically you just overwrite EXE and PDB files and it is done. If there are new config items that you want to use, look them up in the default config files and copy them into your current configuration with appropriate values.
Do not forget that !rld is a miracle admin command allowing you to apply any changes in the config files without Airio restart. You need to stop and start Airio again only if doing EXE update (new version). I can't think of any other situation when this would be necessary.
1) Serious bug fixes concerning custom cars. If you want to use custom cars, 2.2.0 is a must. For one, there were no points to be given to custom cars, but also the times were not calculated correctly. This is all fixed now.
2) All MSG and LOG/ZIP files now go into separate directories. These are created and appropriate files moved there automatically. Removing localizations and old logs from the root directory can help you find your way in the config files.
3) Using a new config item it is possible to limit server(s) to standard or custom cars, as you see fit. Another config item sets default Airio language applied to the host (server console) and all new drivers.
4) New !cars command shows all defined custom cars and car categories (to be used e.g. in !sb).
5) Some commands showing points/drifts/podiums were adjusted. By default they show total stats, all tracks and cars summed, but people may require also specific track/car/combo data. Thus !ptt will show highest total points (with ranks in FULL version), while !ptt bl1 or !ptt xfg limits summed points to BL1 (all cars there) resp. XFG (all tracks here). To see specific combo type !ptt xfg+bl1 (car/track in any order, but joined with + without spaces). Also possible it is to use starting position to show such as !ptt fbm 21.
6) Autocross layouts are now saved with full data exactly matching those for standard tracks. That means points/drifts etc. are saved/recalled and included in total stats.
Well, yes, I think you understand this correctly but there's a little catch. I'll write the process down here to make it, hopefully, clearer:
1) In CFG file you define custom car as CustomCars=UFB|UFR,45,0. Now UFB = UFR with 45 percent intake restriction. (If you want more custom cars, put them all into the same CustomCars key, their definitions separated by space.) Now (say after !rld, note that Airio restart is never necassary) anyone who joins the race with UFR with intake restriction set exactly at 45 percent and zero added mass is reported as joining with UFB and for this virtual car all stats are stored, points calculated separately etc., just like it was a "real" different car type.
2) To limit races to UFB only you need to open TCD (track/car data) file and specify there a restriction of 45 percent on all UFRs is required. You'll need to put somewhere there the following items:
Line 1 says the following applies to all tracks. Line 2 limits the following definitions to UFR only (on all tracks). Lines 3 and 4 are obvious. Line 5 specifies the current car as UFB. Line 6 in effect says that UFB is 20 percent slower than full-fledged UFR. (I made up this value, you need to use something you get by comparing real possible UFR and UFB lap times.)
Note that the TimeAdjustment is really important, or you'll have big troubles getting into stats (maybe that will not be possible). Also with correct time adjustment value you'll see reasonable good/great split/lap times reported etc., all adjusted from full UFR to UFB.
3) So far so good, it seems you have limited all UFRs to UFBs, but here's the catch (or two, in fact, one small and one that may be substantial).
The smaller one is that when someone tries to join with UFR with higher than 45 percent restriction or added mass higher than zero, he can do that and his car will be reported as UFR, because it does not conform to UFB specifications. To correct this behavior an exact match of UFR restrictions would need to be required. I may do that by either changing two >= to two = or giving you another option allowing to require exact match. Both are easy to do, I'd prefer the 1st solution.
But here's the bigger problem that may be more complicated to solve. TCD file settings apply to all connected servers and it means that with the above TCD settings you cannot use UFR on any of the servers! And very probably that's not what you want. (I mean you want to have UFR available on some other server. ).
The big question for me is how to solve this. I see two ways:
a) Allow to specify in TCD file to what server number the settings apply in a similar way you may use Track= and Car= keys to select all or specific tracks/cars. There could be a Server= key that would enable you to use adjusted track/car settings different for each server. While this would give you the ultimate flexibility (and solve some other issues I'm not happy about), it would also mean adding one hierarchical level to the file and the code which, I fear, may lead to confusion and some hard-to-discover configuration troubles.
b) Create a new simple server configuration item called, say, ProhibitedCars. To limit a server to UFBs only you then just need to specify UFB (step 1), completely skip step 2 (no TCD changes necessary), and specify ProhibitedCars=UFR on the server where UFBs only should be allowed. This would in fact solve even the higher restriction/mass values, because such cars would be seen as UFRs and spectated with appropriate message.
Well, well. I hope the above explanation makes sense to you. I have to say solution b) looks much simpler to me, updated Airio with the possibility to allow only custom cars on some server may be ready within 5 minutes. Yes, I think I'll go that way.
The custom cars feature still requires some thinking and improving, I'll be glad for any suggestions. I'm planning to add a new command such as !cars that would show to anyone what custom cars are defined and what specifications they have, because currently you need to give that info to people using some of the textual items (e.g. messages on connect).
While it is not possible to store points separately for each server (because the statistics are the same on all connected servers to one Airio instance), you may turn off points on all servers and then activate them on just one of those. Thus you may have e.g. training server without points and racing server giving points for different things.
To have this arrangement open Airio.srv.txt file and set the following values as specified here:
This will in the FREE version in effect turn off point system on all connected servers. (Note three zeroes with PointsGood.) Then create/open Airio.srv.3.txt file (if server 3 should be the only one where points are scored) and put inside exactly the same four keys mentioned above, but with proper values, e.g.:
GREAT news about Italian translation! If you want to enable it on your server, just put the created Airio.msg.it.txt file into Airio folder and type !rld on any server with Airio connected. No need to stop the application and run it again! Then press Shift+i and try to select the IT option – (almost) everything should change into Italian. I say almost because there are some new lines (even buttons) that are not part of the supplied MSG.EN file, but that are relatively easy to add. If you to make the translation available to everyone, please send the file to me and I'll make it part of the language pack. Worhy addition that would be! Oh, please just make sure you use shortest descriptions/translations possible or they will be cut in some cases which does not look nice.
LOL, thanks, but it doesn't look like a great work to me when it throws error right at the start. It seems Italian date/time settings are substantially different from the rest of the world. But it is great you pointed this deficiency out, now a bullet-proof method is used, guaranteed to work even for Martians.
Now that is much better! Turns out it was my bad after all. Please download 2.1.9 again, replace the EXE and PDB files as they were updated. There should be no more such error. Sorry!
Right. I guess you understand that picture does not give me much info. I do not know what you are trying to do nor where the error appeared, so I can only guess:
Did that error appear when you were trying to import LFS Lapper data from a PB.txt file? Currently I can't think of any other place where date/time string is being converted (but I might have overlooked something).
Anyway, if it really happens when importing Lapper data, well, I guess you can try to send me the PB.txt file to eqworry[at]airio.eu and I'll see what other nice date/time string format is used there.
If that is not the case, send me please the Airio.log file, then I'll have much more data available.
There's been for some time the requirement to store stats according to restrictions used. It took me some time to realize that custom cars (with their own names) provide a perfect solution. And using the existing Airio framework they were not, in fact, as complicated to implement.
In the default config files you'll find definitions of three GT2 cars (used in some existing leagues) like this:
CustomCars=FX2|FXR,23,0 XR2|XRR,25,0 FZ2|FZR,20,0
They are also combined into one category (see the last item):
This makes commands such as !sb gt2 available. The command will show only GT2 cars (that is custom-defined FX2+XR2+FZ2) while !sb gtr would give you completely different output. The same is true for !tb fz2 and !tb fzr, they are simply different types of cars.
To make race points assigned uniformly for certain equal car types there's also an extended default definition of car groups:
Well, in the newest version (please download 2.1.9 again, I did a very small update there) the above item could be more easily written as:
CarGroups=STD TBO GTR UFR+XFR LFR GT2
Simply put, once you define custom car or car category, you may use it. Note that custom car and category names are always required to have exactly 3 characters. Also note that all the things mentioned here are available in the FREE version.
This is not true for customizable licences and ranks though which allow you to create CTRA-like systems where players can join races on another server only when they have sufficient ranks, lap times or both. And you may limit this also on specific car type level, such as allowing to use TBOs only until certain rank (number of total points) is gained, then also GTRs will be available, all on the same server or on different servers, as you wish. But these things are reserved for the FULL version only.
Airio 2.1.9 is released. Again, for complete changes read the changelog, but here's summary of the updates:
1) Support for custom cars definitions using restrictions. Custom cars have new names and are processed just like if they were new standard LFS cars, meaning they have their own settings and stats. Basically they may be used anywhere in Airio where other cars are supported. A player is seen as joining in custom car type if intake restriction and added mass exactly match the defined requirements. This feature allows to store separate stats for restricted car types (with new names assigned). It is available also in the FREE version, so anyone can create e.g. "Baby FBM" (say FBB) cars even for demo use.
2) New !car command shows what car type each driver currently uses (last joined with), naturaly including custom car types. This info is not (as far as I know) otherwise available directly in LFS, althought it is sometimes necessary.
3) FULL version contains updated ranking system (based on total points). This highly customizable new system may be used to lock access to servers or just to certain car types on some servers by rank level required.
4) Unfortunately there's one change that may not be as popular. Some sections and items were moved from CFG file into a new separate TCD (track/car data) file. The whole arrangement is more logical in this way: CFG = items common to the running instance, all its servers. TCD = all data about tracks and cars (incl. custom cars, car categories). SRV = items definable on individual servers (filters).
Take care, if you have any questions do not hesitate to ask here or using a private message.
From my (organizer) perspective, FOX test race 2 was an utter disaster.
1) Due to family matters I connected 15 minutes late, just when qualification finished. I found 5 other people connected (with one more coming a bit later). With about 40 personal invitations sent out, mostly to people that are spending a lot of time on AA servers or took part in the FBM series last race, that was a deep disappointment. Sure, I received some apologizing messages, but still I missed quite a handful of names. Note that we're running a loose series, without sign-ins required, but on the other hand I expect everyone that has the chance to come to be there. If such low turnout happens one or two more times, there'll simply be no series.
2) After a while and by a pure coincidence I learned that the layout prepared for the track was cleared 45 minutes before the qualification started by one of our limited admins. Now I have to say that made me (and still makes me) furious. WTF, MAN! There's been people practicing on the track with the layour prepared for several days, almost a week, and you delete it for a whim of another player that thinks "it may cause crashes"? Sure it may, just as outright cutting by flying over grass may cause crashes. I consulted the layout with several people and this was what we agreed on. Hell, I cant say how agry I still am. Last minute practicing and the whole qualification thus happened on an invalid track. When the layout was loaded back, the qualification results were deleted and race 1 started basically in random order. But with just 6 cars it really made no difference.
3) FE2R is a track where even small mistakes lead to disater - car toppled and broke (after 1st chicane), car locked in sand (after downhill section). Even with one car reset allowed only 3 cars finished in every one of the three races. Especially sad were the crashes in turn 1 in lap 1. We all ned to realize it is not possible to go there (on any track) at max speed, it is necessary to be prepared for sliding and crashing cars and take evasive manouvres for which sufficient distance is necessary. But overall we saw some nice performances and some deep troubles as well.
4) Next test or preliminary race takes place on Saturday, April 11th, 18:00 UTC at [AA] AirAttack Racing server. We go for a spacey track this time, it will be KY3 or KY3R (maybe the R version, because we did KY3 with FBM already). There'll be 3 races for 15 minutes plus one lap each. The track will be ready together (maybe) with a simple layout (a few tyre stacks put here and there) later today, Thursday. You're welcome to connect to the server and try at least a few laps to know the track better. I myself did about 5 laps on KY3R so I have still much to learn.
Take care and see you soon! One positive thing: These are after all only test races so it is good to experience all the bad things now and not when (if) the series is under way.
1) Restricted car classes: Yes, I'll try to implement the possibility to create custom cars (by applying restrictions on the existing cars). Ideally these should be then handled by their custom name just like they were proper LFS cars. That means separate stats being stored, possibility to use them in !pb and !sb listings etc...
2) Licences and ranks: Yes, true, as you say the licences based purely on lap times in certain track/car combos have limited use for you. But I know other servers where this is exactly what they need. Three servers running the same combo, server 3 is open, but to drive on server 2 or server 1 you need certain lap time stored in Airio stats, and that is the required licence level.
I intend to implement a framework allowing the points to be used in much the same way as lap times. I started with lap times (aka licences) because it was a bit easier and better for testing the general principles. With points (aka ranks) there comes one more variable factor and that is what points are used - total, track, car, or track/car? I can imagine scenarios when all these might be required and I'd like to support those.
So, the rank (points) based system very similar to licence (time) based system is coming. It will be just as flexible, with full customization supported. The current rank system (we're talking here about FULL version only) will be updated/modified for the more flexible framework.
I think there'll be the standard (customizable) sanctions for trying to join a server with insufficient licence or rank - 2 spectates, then kick, all with accompanying explaining messages. 5 kicks = short ban, 12 hours, the lowest possible in LFS.
3) Configs: I'm not sure what makes you berserk? The files have been merged, items are grouped, every item is explained. All new keys are mentioned in changelog so that you may just copy them from default config files into your current ones, update (unless you missed last like 5 to 10 versions) is a matter of 3 to 5 minutes.
I realize some items (especially in the track/car section of the CFG file) are more complicated to set up properly because of the inter-dependencies, but that is a price for the very flexible setup options you get. If anyone runs into some troubles, I'm always around to explain how things work. But surely specifying special settings for tracks and cars requires some thinking, it is relatively easy to make an error resulting with unexpected behavior.
Airio 2.1.8 is released. See the changelog for complete list of updates, here I'd like to mention just a few of the more interesting:
• Support for custom definable car categories such as TBO or GTR which can then be used in !sb (!top) lists to get combined sorted output.
• Support for layouts loading in track rotation scheme.
• An option to kick people for removing others from start grid (race end screen).
• Unix timestamp data now used in Airio STA files to ease PHP processing.
• FULL: Complete time-based licensing framework allowing to define licence levels and required server PB times for any track/car combination or generally with the possibility to limit access (race join) to individual servers by licence level.
Server: [AA] AirAttack Racing
Day/time: Wednesday, April 8th, 20:00 UTC
Track/car: FE2R with FOX
Format: Qualification 10 to 15 minutes, 3 races by 18 minutes plus 1 lap each, total event time with short breaks approx 90 minutes
Sign-ups: No sign-ups necessary
1) Number of races and race time. Currently we have 2 races for 25 minutes, each race taking approx. 27 minutes (with the additional lap). If we went for 3 races by 18 minutes, the total racing time would be approximatey the same. The qualification will be much shorter than 30 minutes - 15 mins is max, maybe just 10 to speed up the whole event. Overall from the quali start to 3rd race finish incl. all breaks it should not take more than 80 to 90 minutes, of which about 60 to 70 are spent by real racing.
2) Symm wheels maybe just introduce one more restriction many people out there would not be willing to accept. Also I noticed we share setups a lot, so in our races this is not a big issue.
3) Dynamic handicaps may be nice addition to ballance the field, but this would require further development and also careful thinking.
4) I'm surprised the hotlap you captured passes HLVC test, but seeing this I think removing one stack of tyres from our NoCut layout is good idea. The restricted zones you suggest does not appeal to me much, I have to say. There's a real danger of unintentional mistake resulting in spectating. Anyway, we always race with no checks running - people are not spectated for idling (getting out of gravel) or speeding in pits.
5) I felt we need to start a new series soon, otherwise our nice group of people formed last year may dissolve. I'm very sure I will not be able to take care of all the races or presenting subsequent statistics, so any help in this respect is welcome. 3rdParty already offered help and I'm grateful for that. I just wanted to kick-start the series (and FOX looks like a viable alternative to FBM), I may withdraw from it a bit later on.
6) I have already asked Victor to change the subforum title to simple AirAttack Racing Series, leaving out the FBM part.
Good deduction, above. There can be only one value (car type) for DefaultCar. Now I've solved a major obstacle and implemented a feature due long ago, specifically definable car categories, such as TBO=RB4+XRT+FXO or anything else you want and using commands such as !sb tbo.
So in 2.1.8 you'll be able to say that e.g. FR=UFR+XFR and then type !sb fr to get combined table. But I see you'de be happier if simple !sb had the same results and !sb ufr and !sb xfr called specifics. So I'm thinking about adding a server-configurable StandardCars key whose value would be used instead of player's current car in case car type is not specified.
EDIT: OK, done, you may watch the progress on the changelog page.
Hi! I'm not sure what do you mean by "does not honor them". If you put DefaultCar=RB4 into Airio.srv.1.txt (and save the file and reload settings by !rld), certainly your server 1 will have RB4 as the default car.
Note that default car is simply assigned to every new connection temporarily and may change when that driver joins the race with a real car type. DefaultCar is not a server setting specifying what car type is available.
Right, what you are struggling with is a bit outdated docs. Not by much, but still. This is from the changelog:
1) MAJOR: Substantial changes to the configuration files – merging of SRV and FIL files into Airio.srv.txt, merging CFG, CFG.NC, CFG.TC, and CFG.LC files into Airio.cfg.txt. Old arrangement would still function (at least for some time, until IncludeFile directive is supported), but this new one substantially reduces the number of external files, making it easier to find the related items.
2) Also the text lines from TXT.FQ, TXT.RL, and TXT.NT were moved into a new section of Airio.cfg.txt, with new items TextFAQs, TextNotes, and TextRules available. The old arrangement in NOT supported, the three formerly used TXT files are ignored. Any changes in FAQ/Notes/Rules buttons need to be updated by !rld, just like all other items.
Simply put, all the CFG files were merged into one which contains items valid for the running instance and not changeable on individual servers. The SRV file on the other hand contains items that can be redefined on individual servers - you just copy them from the main SRV file and put them into Airio.srv.1.txt. You can do that with DefaultCar and any other key in the main SRV file.
Rotating layouts, hmm, currently not supported, but I guess possible with a small update. Then you may be able to use tracks as BL3_Layout1 > AU4_MyFun etc... I will test this and see if that's possible in some easy fashion... And yes, it will store stats based on track/layout name, which you can display using !sb, !pb and other commands.